Skip to content

Inital Push#1

Merged
spbsoluble merged 9 commits intorelease-1.0from
dev
Jul 24, 2025
Merged

Inital Push#1
spbsoluble merged 9 commits intorelease-1.0from
dev

Conversation

@bhillkeyfactor
Copy link
Copy Markdown
Collaborator

No description provided.

@spbsoluble spbsoluble requested a review from Copilot July 24, 2025 19:32
@spbsoluble spbsoluble merged commit be70ef2 into release-1.0 Jul 24, 2025
30 checks passed
@spbsoluble spbsoluble deleted the dev branch July 24, 2025 19:33
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR replaces a legacy CA Gateway template with a complete ACME (Automated Certificate Management Environment) AnyCA Gateway REST plugin implementation. The plugin enables automated certificate enrollment from various ACME providers like Let's Encrypt, Google CAS, ZeroSSL, and Buypass using DNS-01 challenges.

Key changes include:

  • Complete removal of template CA gateway code and replacement with production ACME plugin
  • Implementation of modular DNS provider system supporting Google Cloud DNS, AWS Route 53, Azure DNS, Cloudflare, and NS1
  • ACME protocol client with External Account Binding (EAB) support and robust error handling

Reviewed Changes

Copilot reviewed 42 out of 43 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
integration-manifest.json Updated plugin metadata with ACME-specific configuration parameters
docsource/configuration.md Added comprehensive configuration documentation for ACME providers and DNS services
TestProgram/ Added test program for plugin validation with configuration management
AcmeCaPlugin/ Core plugin implementation with ACME client, DNS providers, and account management
README.md Replaced template readme with detailed ACME plugin documentation
Comments suppressed due to low confidence (1)

AcmeCaPlugin/Clients/DNS/AzureDnsProvider.cs:54

  • There's a spelling error - 'Itentity' should be 'Identity'.
            var zone = await GetDnsZoneAsync(recordName);


---

### 🔁 Enrollment Flow Summary
Copy link

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a typo in 'Inital Push' in the PR title - it should be 'Initial Push'.

Copilot uses AI. Check for mistakes.
Comment thread integration-manifest.json
Comment on lines +54 to +66
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
Copy link

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a spelling error in the description - 'Itentity' should be 'Identity'.

Suggested change
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Identity in Azure (Optional)"

Copilot uses AI. Check for mistakes.
Comment thread integration-manifest.json
Comment on lines +54 to +66
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
Copy link

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a spelling error in the description - 'Itentity' should be 'Identity'.

Suggested change
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Identity in Azure (Optional)"

Copilot uses AI. Check for mistakes.
Comment thread integration-manifest.json
Comment on lines +54 to +66
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
Copy link

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a spelling error in the description - 'Itentity' should be 'Identity'.

Suggested change
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Identity in Azure (Optional)"

Copilot uses AI. Check for mistakes.
Comment thread integration-manifest.json
Comment on lines +54 to +66
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
Copy link

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a spelling error in the description - 'Itentity' should be 'Identity'.

Suggested change
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Itentity in Azure (Optional)"
"description": "Azure DNS: ClientId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_ClientSecret",
"description": "Azure DNS: ClientSecret only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_SubscriptionId",
"description": "Azure DNS: SubscriptionId only if using Azure DNS and Not Managed Identity in Azure (Optional)"
},
{
"name": "Azure_TenantId",
"description": "Azure DNS: TenantId only if using Azure DNS and Not Managed Identity in Azure (Optional)"

Copilot uses AI. Check for mistakes.
// Create signing input and compute signature
var signingInput = $"{protectedB64}.{payloadB64}";
var signature = signFunc(Encoding.UTF8.GetBytes(signingInput));
var signatureB64 = CryptoHelper.Base64.UrlEncode(signature);
Copy link

Copilot AI Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a typo in the license file - 'Bryan Livingston' appears to be incorrect for this Keyfactor plugin.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants